package com.education.platform.dto.notification;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 通知创建DTO
 *
 * @author education-platform
 * @since 2025-10-27
 */
@Data
@Schema(description = "通知创建DTO")
public class NotificationCreateDTO {

    @NotBlank(message = "通知标题不能为空")
    @Schema(description = "通知标题")
    private String title;

    @NotBlank(message = "通知内容不能为空")
    @Schema(description = "通知内容")
    private String content;

    @NotNull(message = "通知类型不能为空")
    @Schema(description = "通知类型：SYSTEM-系统通知 ACTIVITY-活动通知 ANNOUNCEMENT-公告通知")
    private String type;

    @Schema(description = "优先级：LOW-低 NORMAL-普通 HIGH-高 URGENT-紧急")
    private String priority = "NORMAL";

    @NotNull(message = "目标用户不能为空")
    @Schema(description = "目标用户：ALL-全部用户 TEACHER-所有教员 PARENT-所有家长 CUSTOM-指定用户")
    private String targetUsers;

    @Schema(description = "指定用户ID列表，逗号分隔")
    private String userIds;

    @Schema(description = "链接地址")
    private String linkUrl;

    @Schema(description = "是否定时发送")
    private Boolean scheduled = false;

    @Schema(description = "发送时间")
    private LocalDateTime sendTime;
}

